package com.cloud.tsp.mapper;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloud.api.domain.job.EvStatistics;
import com.cloud.api.domain.report.*;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

/**
 * @author 杨斌
 * 2025-01-2025-01-14
 */
@DS("doris")
public interface EvStatisticsMapper extends BaseMapper<EvStatistics> {

    List<ProvinceDistribution> selectProvinceDistribution(@Param("c") QueryDistribution para);

    List<VehiclesOnLine> exportVehiclesOnLineList(@Param("c") QueryDistribution para);

    List<VehicleModelCondition> exportVehiclesModelList(@Param("c") QueryDistribution para, @Param("dataSource") String dataSource);

    List<VehiclesEnergy> exportVehiclesEnergyList(@Param("c")QueryDistribution para, @Param("dataSource") String dataSource);


    IPage<ProvinceDistribution> selectProvinceDistributionList(Page<ProvinceDistribution> page,@Param("c") QueryProvinceDistribution para);

    IPage<VehiclesOnLine> selectVehiclesOnLineList(Page<VehiclesOnLine> page,@Param("c") QueryProvinceDistribution para);

    IPage<VehicleModelCondition> selectVehiclesModelList(Page<VehicleModelCondition> page, @Param("c")QueryProvinceDistribution para,@Param("dataSource") String dataSource);

    IPage<VehiclesEnergy> selectVehiclesEnergyList(Page<VehiclesEnergy> page,@Param("c") QueryProvinceDistribution para, @Param("dataSource") String dataSource);

    List<ProvinceDistribution> exportMailProvinceDistributionList(@Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime);

    List<VehiclesOnLine> exportMailVehiclesOnLineList(@Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime);

    List<VehicleModelCondition> exportMailVehiclesModelList(@Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime, @Param("dataSource")String dataSource);

    List<VehiclesEnergy> exportMailVehiclesEnergyList(@Param("startTime") LocalDate startTime, @Param("endTime") LocalDate endTime, @Param("dataSource")String dataSource);
}
